Page({
  data: {
    // 指定 `van-datetime-picker` 组件的起始日期
    currentDate: Date.now(),
    houseInfo: '', // 房屋信息
    visitDate: '', // 访客日期
    name: '', // 访客姓名
    mobild: '', // 访客手机号
    gender: 1 || 2, // 性别
    dateLayerVisible: false,
    houseLayerVisible: false,
    houseList: [],
  },
  openHouseLayer() {
    this.setData({ houseLayerVisible: true })
  },
  closeHouseLayer() {
    this.setData({ houseLayerVisible: false })
  },
  openDateLayer() {
    this.setData({ dateLayerVisible: true })
  },
  closeDateLayer() {
    this.setData({ dateLayerVisible: false })
  },

  // 校验是否上传了访问的房屋
  checkHouse() {
    const vaild = Boolean(this.data.houseId)
    // console.log(vaild)
    if (!vaild) return wx.utils.toast('请选择访问的房屋')
    return vaild
  },
  // 校验姓名
  checkName() {
    const reg = /^(?:[\u4e00-\u9fa5·]{2,16})$/
    const vaild = reg.test(this.data.name.trim())
    if (!vaild) return wx.utils.toast('请输入真实的中文姓名')
    return vaild
  },
  // 校验手机号
  checkMobile() {
    const reg = /^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[1589]))\d{8}$/
    const vaild = reg.test(this.data.mobile.trim())
    if (!vaild) return wx.utils.toast('请输入合法的手机号')
    return vaild
  },
  // 校验日期
  checkDate() {
    const reg = /^\d{4}[-|/]\d{2}[-|/closeDateLayer]\d{2}$/
    const vaild = reg.test(this.data.visitDate)
    if (!vaild) return wx.utils.toast('请选择访问日期')
    return vaild
  },

  // 确认按钮
  onSubmit() {
    if (!this.checkHouse()) return
    if (!this.checkName()) return
    if (!this.checkMobile()) return
    if (!this.checkDate()) return
    // console.log(this.data)
    // 结构出发请求需要的参数
    const { houseId, name, gender, mobile, visitDate } = this.data
    wx.http.post('/visitor', { houseId, name, gender, mobile, visitDate })
    // 提示用户
    wx.utils.toast('提交访客信息成功')
    // 跳转页面
    wx.reLaunch({
      url: '/visitor_pkg/pages/list/index',
    })
  },

  onLoad() {
    this.getHouseList()
  },

  // 获取点击的房屋信息
  selectHouse(e) {
    // console.log(e)
    const { name, id: houseId } = e.detail
    // console.log(name)
    this.setData({
      houseInfo: name,
      houseId
    })
  },
  // 访客日期
  selectDate(e) {
    // console.log(e)
    const time = wx.utils.formatTime(e.detail)
    this.setData({
      // 关闭弹出层
      dateLayerVisible: false,
      visitDate: time
    })
  },
  // 查询审核通过的房屋
  async getHouseList() {
    const { data } = await wx.http.get('/house')
    // console.log(data)
    this.setData({
      houseList: data
    })
  },
})
